//对axios的封装
//参考博客网址：https://blog.csdn.net/qq_38145702/article/details/81558816
import axios from "axios";
import {Cookie} from "./utility.js";
import qs from "qs";
import {
    Loading,
    Message,
} from 'element-ui';

let loading = null;


/****** 创建axios实例 ******/
const http = axios.create({
    baseURL: 'http://www.hxov.com:7002',
    withCredentials: true, // 表示跨域请求时是否需要使用凭证,默认false
    // timeout: 5000,   //超时设置(默认为0)
    headers: {
        'Authorization': new Cookie().get('token')
    }
});
/****** request拦截器==>对请求参数做处理 ******/
http.interceptors.request.use(config => {
    //loading参考网址： https://www.jianshu.com/p/95ec2286bc6d
    loading = Loading.service({
        lock: true,
        text: '玩命加载中……',
        background: 'rgba(0, 0, 0, 0.7)'
    });
    config.method === 'post'
        ? config.data = qs.stringify({ ...config.data })
        : config.params = { ...config.params };
    config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
    return config;
}, error => {  //请求错误处理
    Promise.reject(error)
});
/****** respone拦截器==>对响应做处理 ******/
http.interceptors.response.use(
    response => {  //成功请求到数据
        loading.close();
        if (response.statusText === "OK") {   //status: 200  这里根据后端提供的数据进行对应的处理
            return response.data;
        } else {
            console.log(response)
        }
    },
    error => {  //响应错误处理
		loading.close();
        // let text = JSON.parse(JSON.stringify(error)).response.status === 404 ? '页面不存在' : '网络异常，请重试';
        Message.warning(error)
        return Promise.reject(error)
    }
);
export default http;